% fname: routing_dyad_0_6__sel_bufferlevel__topology_8x8__.m
% ./noxim -routing dyad 0.6 -sel bufferlevel -dimx 8 -dimy 8  -sim 10000 -warmup 2000 -size 8 8 -buffer 2 

function [max_pir, max_throughput, min_delay] = routing_dyad_0_6__sel_bufferlevel__topology_8x8__(symbol)

data = [
%             pir      avg_delay     throughput      max_delay       rpackets         rflits
            0.007        19.9568      0.0549395            100           3517          28129
            0.007        21.2666       0.056877            132           3642          29121
            0.007        20.8197      0.0569395            152           3644          29153
            0.007        20.9013      0.0557559            147           3568          28547
            0.007        20.0684      0.0537305            111           3437          27510
            0.007         21.314      0.0548633            146           3510          28090
            0.007         21.082      0.0568633            148           3636          29114
            0.007        21.2796      0.0550293            138           3523          28175
            0.007        20.5393      0.0550176            137           3523          28169
            0.007        21.3561       0.056373            125           3606          28863
            0.007        20.8739      0.0547578            131           3504          28036
            0.007        21.3028      0.0567422            135           3630          29052
            0.007        21.2748      0.0557754            130           3574          28557
            0.007         19.774      0.0563262            124           3606          28839
            0.007        20.9208      0.0561562            124           3597          28752
            0.007        21.5569      0.0560469            146           3588          28696
            0.007        20.7455      0.0541582            124           3466          27729
            0.007        21.1934      0.0579219            169           3708          29656
            0.007        19.9097      0.0557168            113           3565          28527
            0.007        20.3207       0.055498            112           3549          28415
            0.008        22.9447      0.0647168            107           4142          33135
            0.008        21.8296      0.0631387            137           4043          32327
            0.008        23.0663      0.0624316            180           3997          31965
            0.008        22.9245        0.06375            121           4078          32640
            0.008        23.3898      0.0653535            211           4182          33461
            0.008        23.3355      0.0630449            201           4036          32279
            0.008        23.1987      0.0636152            117           4071          32571
            0.008        22.7449      0.0635859            198           4069          32556
            0.008         22.984      0.0634512            198           4060          32487
            0.008        23.5365       0.062834            132           4019          32171
            0.008        23.1476      0.0643633            159           4119          32954
            0.008        22.7162      0.0630449            126           4035          32279
            0.008        23.2423      0.0642461            156           4114          32894
            0.008         23.448      0.0651094            145           4167          33336
            0.008        23.9993      0.0656953            163           4206          33636
            0.008        23.7692      0.0657246            193           4207          33651
            0.008        23.5666      0.0639102            151           4089          32722
            0.008        22.5355      0.0649824            125           4159          33271
            0.008        22.8968      0.0623809            180           3992          31939
            0.008        23.6172      0.0640488            149           4096          32793
            0.009        26.6739      0.0711895            169           4554          36449
            0.009        26.1602      0.0728984            233           4664          37324
            0.009        26.6312      0.0721563            253           4621          36944
            0.009        25.7727      0.0724766            182           4637          37108
            0.009        26.9661      0.0722578            203           4626          36996
            0.009        25.1907      0.0704707            260           4510          36081
            0.009        26.9756      0.0729629            231           4670          37357
            0.009         26.515      0.0724121            228           4635          37075
            0.009         26.777      0.0708223            195           4534          36261
            0.009        26.6833      0.0719355            200           4604          36831
            0.009        26.6236       0.070375            282           4508          36032
            0.009         24.635       0.071127            135           4551          36417
            0.009        25.7405      0.0717383            219           4590          36730
            0.009        25.6816       0.072043            142           4614          36886
            0.009        25.7361      0.0722773            134           4627          37006
            0.009         25.628      0.0722109            145           4621          36972
            0.009        27.1399      0.0723535            233           4633          37045
            0.009        24.8922       0.069459            154           4443          35563
            0.009        26.3405      0.0720449            188           4611          36887
            0.009         27.758      0.0738027            228           4724          37787
             0.01        28.3629       0.079209            236           5070          40555
             0.01        29.2195      0.0782539            221           5006          40066
             0.01         29.149      0.0782637            172           5007          40071
             0.01        30.6597       0.081334            250           5207          41643
             0.01        30.6956      0.0803379            297           5141          41133
             0.01        31.2709      0.0811016            275           5193          41524
             0.01        31.8766      0.0817129            223           5233          41837
             0.01        31.9673      0.0792656            292           5074          40584
             0.01        29.9526      0.0807637            211           5172          41351
             0.01        30.4249      0.0795957            291           5095          40753
             0.01        31.5178      0.0808125            253           5170          41376
             0.01        29.7077      0.0788633            261           5053          40378
             0.01        30.9481      0.0803496            318           5145          41139
             0.01        30.6555      0.0785957            374           5028          40241
             0.01        33.4939      0.0801621            338           5133          41043
             0.01        29.5417      0.0801543            294           5130          41039
             0.01         27.676      0.0793164            166           5077          40610
             0.01        29.2395      0.0786621            174           5031          40275
             0.01        29.4292       0.079998            204           5121          40959
             0.01        33.2473      0.0810996            298           5189          41523
            0.011        34.5767      0.0865293            229           5540          44303
            0.011        50.0077      0.0876035            644           5606          44853
            0.011        36.4803      0.0863184            393           5520          44195
            0.011        45.1692      0.0876875            588           5613          44896
            0.011        42.3735      0.0871953            406           5582          44644
            0.011        35.1016      0.0875059            239           5599          44803
            0.011        58.0792      0.0899375            829           5756          46048
            0.011        40.9142      0.0893105            491           5714          45727
            0.011        39.6915      0.0876016            312           5605          44852
            0.011        50.9266      0.0876602            722           5611          44882
            0.011        43.5972      0.0894531            516           5728          45800
            0.011        53.0337      0.0898047            560           5749          45980
            0.011        38.1489       0.087123            346           5573          44607
            0.011        37.1957       0.084668            429           5422          43350
            0.011        39.0498      0.0887109            414           5678          45420
            0.011        38.4708      0.0865723            368           5537          44325
            0.011        35.0463      0.0877031            333           5610          44904
            0.011        39.0146      0.0859316            327           5497          43997
            0.011        35.4571      0.0864023            487           5526          44238
            0.011         49.202      0.0878691            718           5623          44989
            0.012        71.4937      0.0953516            940           6103          48820
            0.012         48.404       0.094582            436           6054          48426
            0.012        358.963      0.0939863           6095           6014          48121
            0.012        67.0142       0.095877            741           6131          49089
            0.012        73.2051        0.09475           1010           6064          48512
            0.012         99.843      0.0961074           1343           6152          49207
            0.012        62.4586      0.0941367            836           6023          48198
            0.012        500.479      0.0891094           5410           5708          45624
            0.012         197.39      0.0969414           3213           6205          49634
            0.012         196.31      0.0957383           2246           6126          49018
            0.012        46.5921      0.0941523            422           6026          48206
            0.012        112.126      0.0965059           1692           6176          49411
            0.012        88.2746      0.0966719           1057           6187          49496
            0.012        248.051       0.092873           2731           5938          47551
            0.012        347.632      0.0893145           4070           5717          45729
            0.012           80.5       0.094623           1016           6054          48447
            0.012        55.4156      0.0968828            715           6199          49604
            0.012        65.7554      0.0960957           1002           6148          49201
            0.012        359.074      0.0883301           4213           5654          45225
            0.012        213.972       0.095125           2718           6087          48704
            0.013        391.862      0.0931953           5593           5965          47716
            0.013        439.496      0.0885098           6403           5661          45317
            0.013        347.102      0.0913008           4348           5838          46746
            0.013        818.898      0.0797441           8284           5102          40829
            0.013        337.104      0.0980762           4032           6274          50215
            0.013         446.45      0.0943496           6225           6041          48307
            0.013         429.35      0.0868027           7513           5557          44443
            0.013        572.394      0.0838027           6584           5360          42907
            0.013        735.676      0.0797285           7942           5102          40821
            0.013        626.371      0.0881523           6610           5642          45134
            0.013        439.718       0.091834           4685           5872          47019
            0.013        765.547      0.0815312           8272           5219          41744
            0.013        513.246      0.0908633           6095           5811          46522
            0.013        417.796      0.0863184           6454           5525          44195
            0.013        417.826      0.0913848           6086           5847          46789
            0.013         336.85      0.0900137           5766           5758          46087
            0.013        471.301       0.087584           6464           5608          44843
            0.013        621.665      0.0776875           6618           4973          39776
            0.013        344.048      0.0992559           5167           6351          50819
            0.013         363.39       0.089748           4431           5742          45951
            0.014        752.543      0.0773555           8035           4949          39606
            0.014         676.63       0.081748           7827           5235          41855
            0.014        1031.16      0.0860547           8073           5510          44060
            0.014        789.664      0.0840781           8887           5382          43048
            0.014        838.576      0.0761289           7987           4871          38978
            0.014         827.89      0.0777637           8727           4977          39815
            0.014        684.219      0.0774941           7566           4956          39677
            0.014        766.212      0.0830625           7945           5315          42528
            0.014        883.597       0.085082           7916           5442          43562
            0.014        685.157      0.0854707           7652           5470          43761
            0.014        600.431      0.0862598           7873           5521          44165
            0.014        707.774      0.0827402           8748           5294          42363
            0.014        439.141       0.088623           5898           5671          45375
            0.014        620.601      0.0842246           8164           5385          43123
            0.014        585.989      0.0840195           7648           5374          43018
            0.014        726.688       0.084209           8247           5389          43115
            0.014        656.147       0.085959           7769           5505          44011
            0.014        637.235      0.0826465           7932           5287          42315
            0.014         882.05      0.0737578           8288           4724          37764
            0.014        811.005      0.0867813           8784           5554          44432
            0.015        738.037      0.0785742           8521           5025          40230
            0.015        950.055      0.0773398           8609           4949          39598
            0.015        996.139      0.0769473           8886           4926          39397
            0.015        1008.29      0.0751934           8986           4813          38499
            0.015         1139.5      0.0722422           8708           4623          36988
            0.015        1053.85       0.075543           8535           4833          38678
            0.015        946.144      0.0777285           8311           4975          39797
            0.015        929.914      0.0744805           8520           4768          38134
            0.015         957.93      0.0759902           7994           4867          38907
            0.015        1016.84      0.0723418           8447           4630          37039
            0.015        840.182      0.0818086           7801           5233          41886
            0.015         1306.6      0.0788477           9614           5046          40370
            0.015        934.229      0.0785742           8145           5027          40230
            0.015        968.229      0.0765508           8225           4900          39194
            0.015        999.307      0.0784727           8800           5016          40178
            0.015        883.576      0.0708477           8914           4537          36274
            0.015        948.171      0.0778125           8720           4983          39840
            0.015         1041.2      0.0775391           8715           4962          39700
            0.015         878.18      0.0786602           8178           5034          40274
            0.015        992.118      0.0760098           8175           4863          38917
            0.016        1363.74      0.0736387           8845           4713          37703
            0.016        1249.04      0.0789434           9026           5049          40419
            0.016        985.374      0.0774141           8581           4953          39636
            0.016        1105.18       0.073082           9117           4677          37418
            0.016        938.726      0.0739375           9069           4732          37856
            0.016        1162.47      0.0755156           8986           4832          38664
            0.016        1230.61      0.0725703           9155           4644          37156
            0.016         905.49      0.0744043           8552           4758          38095
            0.016        1317.64      0.0725039           8910           4640          37122
            0.016        1142.65      0.0775352           8931           4961          39698
            0.016        1177.68       0.071166           9201           4554          36437
            0.016        1107.43      0.0746465           9030           4777          38219
            0.016        1059.02      0.0733125           8391           4691          37536
            0.016        1219.57      0.0762988           8444           4882          39065
            0.016        972.989      0.0708809           9065           4537          36291
            0.016        1235.76      0.0761797           9478           4875          39004
            0.016        1008.28       0.076791           9449           4913          39317
            0.016        1184.15      0.0752539           9167           4818          38530
            0.016        1134.09      0.0747461           8377           4783          38270
            0.016           1053      0.0766348           8469           4906          39237
];

rows = size(data, 1);
cols = size(data, 2);

data_delay = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+1);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_delay = [data_delay; data(ifirst, 1:cols-5), avg ci];
end

figure(1);
hold on;
plot(data_delay(:,1), data_delay(:,2), symbol);

data_throughput = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+2);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_throughput = [data_throughput; data(ifirst, 1:cols-5), avg ci];
end

figure(2);
hold on;
plot(data_throughput(:,1), data_throughput(:,2), symbol);

data_maxdelay = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+3);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_maxdelay = [data_maxdelay; data(ifirst, 1:cols-5), avg ci];
end

figure(3);
hold on;
plot(data_maxdelay(:,1), data_maxdelay(:,2), symbol);


%-------- Saturation Analysis -----------
slope=[];
for i=2:size(data_throughput,1),
    slope(i-1) = (data_throughput(i,2)-data_throughput(i-1,2))/(data_throughput(i,1)-data_throughput(i-1,1));
end

for i=2:size(slope,2),
    if slope(i) < (0.95*mean(slope(1:i)))
        max_pir = data_throughput(i, 1);
        max_throughput = data_throughput(i, 2);
        min_delay = data_delay(i, 2);
        break;
    end
end
